package com.wish.g1.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 租约保理申请表
 * </p>
 *
 * @author wxh
 * @since 2022-11-18
 */
@TableName("tb_factoring")
public class Factoring implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 租约保理申请单号
     */
    private String factoringOrderNo;

    /**
     * 外部合同号
     */
    private String outOrderNo;

    /**
     * 商户id
     */
    private String businessId;

    /**
     * 利率，年利率，单位：百分比
     */
    private BigDecimal rate;

    /**
     * 借款金额
     */
    private BigDecimal loanAmount;

    /**
     * 借款期限，单位：月
     */
    private Integer monthLimit;

    /**
     * 一次性服务费，单位：百分比
     */
    private BigDecimal serviceFee;

    /**
     * 金融产品ID
     */
    private Long jrProductId;

    /**
     * 资方ID
     */
    private Long capitalId;

    /**
     * 资方名称
     */
    private String capitalName;

    /**
     * 应收租约合计
     */
    private BigDecimal rentMoney;

    /**
     * 保理授信金额合计
     */
    private BigDecimal factoringCreditMoney;

    /**
     * 服务费
     */
    private BigDecimal serviceMoney;

    /**
     * 保理利息合计
     */
    private BigDecimal factoringAdditionalMoney;

    /**
     * 实收保理金额
     */
    private BigDecimal factoringTrueMoney;

    /**
     * 备注
     */
    private String remark;

    /**
     * 审核备注
     */
    private String auditMemo;

    /**
     * 申请状态，1:申请中，2：初审通过，3：初审不通过，4：复审通过，5：复审不通过
     */
    private Integer applyState;

    /**
     * 删除标识，0：删除 ，1：未删除
     */
    private Boolean delFlg;

    /**
     * 创建用户id
     */
    private Long createUserid;

    /**
     * 创建用户时间
     */
    private LocalDateTime createTime;

    /**
     * 更新用户id
     */
    private Long updateUserid;

    /**
     * 更新用户时间
     */
    private LocalDateTime updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getFactoringOrderNo() {
        return factoringOrderNo;
    }

    public void setFactoringOrderNo(String factoringOrderNo) {
        this.factoringOrderNo = factoringOrderNo;
    }
    public String getOutOrderNo() {
        return outOrderNo;
    }

    public void setOutOrderNo(String outOrderNo) {
        this.outOrderNo = outOrderNo;
    }
    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }
    public BigDecimal getRate() {
        return rate;
    }

    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }
    public BigDecimal getLoanAmount() {
        return loanAmount;
    }

    public void setLoanAmount(BigDecimal loanAmount) {
        this.loanAmount = loanAmount;
    }
    public Integer getMonthLimit() {
        return monthLimit;
    }

    public void setMonthLimit(Integer monthLimit) {
        this.monthLimit = monthLimit;
    }
    public BigDecimal getServiceFee() {
        return serviceFee;
    }

    public void setServiceFee(BigDecimal serviceFee) {
        this.serviceFee = serviceFee;
    }
    public Long getJrProductId() {
        return jrProductId;
    }

    public void setJrProductId(Long jrProductId) {
        this.jrProductId = jrProductId;
    }
    public Long getCapitalId() {
        return capitalId;
    }

    public void setCapitalId(Long capitalId) {
        this.capitalId = capitalId;
    }
    public String getCapitalName() {
        return capitalName;
    }

    public void setCapitalName(String capitalName) {
        this.capitalName = capitalName;
    }
    public BigDecimal getRentMoney() {
        return rentMoney;
    }

    public void setRentMoney(BigDecimal rentMoney) {
        this.rentMoney = rentMoney;
    }
    public BigDecimal getFactoringCreditMoney() {
        return factoringCreditMoney;
    }

    public void setFactoringCreditMoney(BigDecimal factoringCreditMoney) {
        this.factoringCreditMoney = factoringCreditMoney;
    }
    public BigDecimal getServiceMoney() {
        return serviceMoney;
    }

    public void setServiceMoney(BigDecimal serviceMoney) {
        this.serviceMoney = serviceMoney;
    }
    public BigDecimal getFactoringAdditionalMoney() {
        return factoringAdditionalMoney;
    }

    public void setFactoringAdditionalMoney(BigDecimal factoringAdditionalMoney) {
        this.factoringAdditionalMoney = factoringAdditionalMoney;
    }
    public BigDecimal getFactoringTrueMoney() {
        return factoringTrueMoney;
    }

    public void setFactoringTrueMoney(BigDecimal factoringTrueMoney) {
        this.factoringTrueMoney = factoringTrueMoney;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getAuditMemo() {
        return auditMemo;
    }

    public void setAuditMemo(String auditMemo) {
        this.auditMemo = auditMemo;
    }
    public Integer getApplyState() {
        return applyState;
    }

    public void setApplyState(Integer applyState) {
        this.applyState = applyState;
    }
    public Boolean getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Boolean delFlg) {
        this.delFlg = delFlg;
    }
    public Long getCreateUserid() {
        return createUserid;
    }

    public void setCreateUserid(Long createUserid) {
        this.createUserid = createUserid;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getUpdateUserid() {
        return updateUserid;
    }

    public void setUpdateUserid(Long updateUserid) {
        this.updateUserid = updateUserid;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "Factoring{" +
            "id=" + id +
            ", factoringOrderNo=" + factoringOrderNo +
            ", outOrderNo=" + outOrderNo +
            ", businessId=" + businessId +
            ", rate=" + rate +
            ", loanAmount=" + loanAmount +
            ", monthLimit=" + monthLimit +
            ", serviceFee=" + serviceFee +
            ", jrProductId=" + jrProductId +
            ", capitalId=" + capitalId +
            ", capitalName=" + capitalName +
            ", rentMoney=" + rentMoney +
            ", factoringCreditMoney=" + factoringCreditMoney +
            ", serviceMoney=" + serviceMoney +
            ", factoringAdditionalMoney=" + factoringAdditionalMoney +
            ", factoringTrueMoney=" + factoringTrueMoney +
            ", remark=" + remark +
            ", auditMemo=" + auditMemo +
            ", applyState=" + applyState +
            ", delFlg=" + delFlg +
            ", createUserid=" + createUserid +
            ", createTime=" + createTime +
            ", updateUserid=" + updateUserid +
            ", updateTime=" + updateTime +
        "}";
    }
}
